/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package imperio.eventos;

import imperio.controlador.Cap;
import imperio.population.Individuo;
import imperio.population.Populacao;
import imperio.simulador.Simulador;
import java.util.Iterator;

/**
 *
 * @author Bernardo
 */
public class Epidemia extends Evento {
    
    public static int countEpidemias;

    public Epidemia() {
        super.setTempo(Simulador.tempoCorrente);        
    }
    
    /**Método para simulação do evento de epidemia, onde são preservados 5 individuos de maior conforto e os outros elementos dependem da probabilidade de sobrevivência.
     * A probabilidade de sobrevivência é 2/3*conforto(individuo). Assim, faz-se uma observação de uma variável aleatória uniforme, entre 0 e 1, e se o valor observado for inferior ou igual a 2/3*conforto(individuo)
     * o indivíduo sobrevive à epidemia, se o valor observado for superior o indivíduo morre.
     */


    @Override
    public void simularEvento() {
        //Populacao.sort();
        int cont = 0;
        Iterator<Individuo> iterator = Populacao.individuos.iterator();
        while(iterator.hasNext()){            
            if(cont > 4){
            Individuo individuo = iterator.next();
            int rand = (int) (Math.random() * 2) ;
            if(rand > individuo.getProbSobrevivencia()){
                Cap.removerEvCap(individuo);
                iterator.remove();
            }
            }
            cont++;
            iterator.next();
        }
        countEpidemias++;
    }

}
